package org.jeecg.modules.mes.service;

import org.jeecg.modules.mes.entity.MesProductionTemplate;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.api.vo.Result;

import java.util.List;
import java.util.Map;

/**
 * @Description: 生产计划模板
 * @Author: jeecg-boot
 * @Date: 2025-01-21
 * @Version: V1.0
 */
public interface IMesProductionTemplateService extends IService<MesProductionTemplate> {

    /**
     * 检查模板编码是否存在
     * @param templateCode 模板编码
     * @param excludeId 排除的ID
     * @return 是否存在
     */
    boolean checkTemplateCodeExists(String templateCode, String excludeId);

    /**
     * 获取默认模板
     * @return 默认模板
     */
    MesProductionTemplate getDefaultTemplate();

    /**
     * 设置默认模板
     * @param templateId 模板ID
     * @return 操作结果
     */
    Result<?> setDefaultTemplate(String templateId);

    /**
     * 保存模板及其工种配置
     * @param templateData 模板数据
     * @return 操作结果
     */
    Result<?> saveTemplateWithWorkTypes(Map<String, Object> templateData);

    /**
     * 获取模板及其工种配置
     * @param templateId 模板ID
     * @return 模板详情
     */
    Map<String, Object> getTemplateWithWorkTypes(String templateId);

    /**
     * 删除模板及其工种配置
     * @param templateId 模板ID
     * @return 操作结果
     */
    Result<?> deleteTemplateWithWorkTypes(String templateId);

    /**
     * 复制模板
     * @param sourceTemplateId 源模板ID
     * @param newTemplateName 新模板名称
     * @return 操作结果
     */
    Result<?> copyTemplate(String sourceTemplateId, String newTemplateName);

    /**
     * 获取模板工种配置
     * @param templateId 模板ID
     * @return 工种配置列表
     */
    List<?> getTemplateWorkTypes(String templateId);
}
